package com.map;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.function.BiConsumer;

/**
 * Map集合的遍历方式:1.键寻值   2.键值对方式  3.Lambda方式
 */
public class MapDemo3 {
    public static void main(String[] args) {
        Map<String,Integer> map=new HashMap<>();
        map.put("java",100);
        map.put("python",13);
        map.put("scala",22);
        map.put("js",50);
        System.out.println(map);

        //1.键找值遍历方式

        //拿到集合的所有键
        Set<String> strings = map.keySet();
        //使用foreach循环遍历set集合
        for (String s : strings) {
            Integer integer = map.get(s);
            System.out.println(s+"==="+integer);

        }

        //2.使用键值对方式遍历map集合
        //调用entrySet方法将map转为set
        Set<Map.Entry<String,Integer>> map_set=map.entrySet();
        for (Map.Entry<String,Integer> maps:map_set){
            //获取值
            System.out.println(maps.getKey());
            //获取value
            System.out.println(maps.getValue());
        }


        //3.使用Lambda表达式遍历map集合

        //调用map的forEach方法，和Collection集合的lambda遍历方法一样
        map.forEach(new BiConsumer<String, Integer>() {
            @Override
            public void accept(String k, Integer v) {
                System.out.println(k+"==="+v);
            }
        });

        //简化
        map.forEach((k,  v)-> { System.out.println(k+"==="+v); });

    }

}
